Methods and apparatus to count people in images

ABSTRACT

Methods, articles of manufacture, and apparatus to count people in an image are disclosed. An example method includes estimating, based on a location of a face of a person in a first image frame, a portion of the image that corresponds to a body region of the person; and using image data corresponding to the portion to determine whether the person is present in a second image frame in which the face of the person is undetected.

RELATED APPLICATION

This patent arises from a continuation of U.S. patent application Ser.No. 13/222,084, filed Aug. 31, 2011, now U.S. Pat. No. 8,620,088, whichis hereby incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

This disclosure relates generally for audience measurement and, moreparticularly, to methods and apparatus to count people in images.

BACKGROUND

Audience measurement of media content (e.g., broadcast television and/orradio, stored audio and/or video content played back from a memory suchas a digital video recorder or a digital video disc, audio and/or videocontent played via the Internet, video games, etc.) often involvescollection of content identifying data (e.g., signature(s),fingerprint(s), embedded code(s), channel information, time ofconsumption information, etc.) and people data (e.g., identifiers,demographic data associated with audience members, etc.). The contentidentifying data and the people data can be combined to generate, forexample, media exposure data indicative of amount(s) and/or type(s) ofpeople that were exposed to specific piece(s) of media content.

In some audience measurement systems, the collected people data includesan amount of people being exposed to media content. To calculate theamount of people being exposed to the media content, some measurementsystems capture a series of images of a media exposure environment(e.g., a television room, a family room, a living room, etc.) andanalyze the images to determine how many people appear in the images ata particular date and time. The calculated amount of people in the mediaexposure environment can be correlated with media content beingpresented at the particular date and time to provide exposure data(e.g., ratings data) for that media content.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of an example exposure environment includingan example audience measurement device disclosed herein.

FIG. 2 is a block diagram of an example implementation of the exampleaudience measurement device of FIG. 1.

FIG. 3 is a block diagram of an example implementation of the examplepeople counter of FIG. 2.

FIG. 4A is a portion of a first frame of image data captured by theexample audience measurement device of FIGS. 1 and/or 2.

FIG. 4B is a portion of a second frame of image data captured by theexample audience measurement device of FIGS. 1 and/or 2.

FIG. 4C is a portion of a third frame of image data captured by theexample audience measurement device of FIGS. 1 and/or 2.

FIGS. 5A-5C are flowcharts illustrating example machine readableinstructions that may be executed to implement the example peoplecounter of FIGS. 1, 2 and/or 3.

FIG. 6 is a flowchart illustrating example machine readable instructionsthat may be executed to implement the example people counter of FIGS. 1,2 and/or 3.

FIG. 7 is a block diagram of an example processing system capable ofexecuting the example machine readable instructions of FIGS. 5A-5Cand/or 6 to implement the example people counter of FIGS. 1, 2 and/or 3.

DETAILED DESCRIPTION

To count people in a media exposure environment, such as a room of housein which a television is located, some audience measurement systemsattempt to recognize objects as humans in a series of captured images ofthe room. A tally is maintained for each frame of image data to reflectan amount of people in the room at a time corresponding to a respectiveframe. That is, each recognition of an object as a human in a frameincreases the tally associated with that frame. Some such systemsrecognize humans by recognizing human faces. However, faces of peopleoften become unrecognizable due to, for example, partial visibility,obscuring of the face due to eating or drinking, or a rotation of a headrelative to a camera capturing the frames. As a result, the tally for aframe including one or more unrecognized faces is less likely toaccurately reflect the amount of people in the frame and, thus, themedia exposure environment.

An inaccurate tally of the people in the frame and, thus, in the mediaexposure environment negatively affects the accuracy of media exposuredata generated using the tally. For example, the audience measurementsystem counting the people in the room may also be collecting contentidentifying information to identify media content being presented (e.g.,aurally and/or visually) in the room. With the identification of themedia content and the amount of people in the room at a given date andtime, the audience measurement system is aware of how many people wereexposed to the specific media content. When face(s) are not recognizedas faces, the exposure data for the specific media content may beundercut (e.g., the media content is accredited with lessviewers/listeners than had actually been exposed to the media content).

To increase the accuracy of the people counts and, thus, media exposuredata generated based on the people counts, example methods and apparatusdisclosed herein utilize the relative stability of a body region, suchas a shoulder region, of a person when, for example, the person tilts orrotates his or her head or when the face of a person becomesunrecognizable (e.g., because something is blocking the face from beingcaptured by a camera). Often, a position or an orientation of a bodyregion does not substantially change when a person tilts or rotates hisor her head. For example, a position of a shoulder region of a persondoes not substantially change when a corresponding head is rotated ortilted. To take advantage of the stability of the shoulders during ahead tilt or rotation, example methods, articles of manufacture, andapparatus disclosed herein capture an image of the shoulder region of aperson when a face is recognized. That is, when an object is recognizedas a face, example methods, articles of manufacture and apparatusdisclosed herein capture and store a picture and a position (e.g., anX-Y coordinate within the frame) of one or more body regions of thecorresponding person. Example methods, articles of manufacture andapparatus disclosed herein then determine whether the body region(s) arestill present at the recorded position in one or more subsequent framescaptured at a later time. Additionally or alternatively, examplemethods, articles of manufacture and apparatus disclosed herein candetermine whether the body region(s) are present at the recordedposition in one or more earlier frames captured previously. If the bodyregion(s) appear in the previous or subsequent frame(s) at the recordedposition, example methods, articles of manufacture, and apparatusdisclosed herein count the person as present in the frame (e.g., byincrementing a tally for the previous or subsequent frame) even when thecorresponding face is not recognized in the previous or subsequentframe. Thus, even when a face that is actually present in the previousor subsequent frame goes unrecognized due to, for example, a tilt orrotation of the corresponding head, example methods, articles ofmanufacture, and apparatus disclosed herein accurately include theperson whose body region(s) are identified in the tally of people of theprevious or subsequent frame. Additional and/or alternative aspectsand/or advantages of example methods, articles of manufacture, andapparatus disclosed herein are described below.

FIG. 1 is an illustration of an example media exposure environment 100including a media presentation device 102 and an example audiencemeasurement device 104 for measuring an audience 106 of the mediapresentation device 102. In the illustrated example of FIG. 1, the mediaexposure environment 100 is a room of a household that has beenstatistically selected to develop television ratings data for apopulation/demographic of interest. The example audience measurementdevice 104 can be implemented in additional and/or alternative types ofenvironments such as, for example, a room in a non-statisticallyselected household, a theater, a restaurant, a tavern, a retaillocation, an arena, etc. In the illustrated example of FIG. 1, the mediapresentation device is a television 102 coupled to a set-top box (STB)108 that implements a digital video recorder (DVR) and a digitalversatile disc (DVD) player. The example audience measurement device 104can be implemented in connection with additional and/or alternativetypes of media presentation devices such as, for example, a radio, acomputer monitor, and/or any other communication device able to presentcontent to one or more individuals.

The example audience measurement device 104 of FIG. 1 utilizes a camera110 to capture a plurality of time stamped frames of image data of theenvironment 100. The camera 110 of FIG. 1 captures images within a fieldof view defined by the dotted lines. In the example shown in FIG. 1, animage captured by the camera 110 includes each member of a three-personaudience 106. Therefore, an accurate people tally for a framecorresponding to the state of the environment 100 shown in FIG. 1 willinclude three (3) people. As described in detail below, the exampleaudience measurement device 104 of FIG. 1 also monitors the environment100 to identify media content being presented (e.g., displayed, played,etc.) by the television 102 and/or other media presentation devices towhich the audience 106 is exposed. Identification(s) of media content towhich the audience 106 is exposed are correlated with the people talliesto generate exposure data for the media content. Therefore, the accuracyof the exposure data depends on the ability of the audience measurementdevice 104 to accurately identify the amount of people in the audience106 as three (3).

FIG. 2 is a block diagram of an example implementation of the exampleaudience measurement device 104 of FIG. 1. The example audiencemeasurement device 104 of FIG. 2 includes an audience detector 200 and acontent identifier 202. The example audience detector 200 includes animage sensor 204, a people counter 206, a time stamper 208, and a memory210. The example image sensor 204 of FIG. 2 captures frames of imagedata of the environment 100, which includes the audience 106 beingexposed to a presentation output by the media presentation device 102 ofFIG. 1. In some examples, the image sensor 204 only captures frames ofimage data when the media presentation device 102 is in an “on” stateand/or when the content identifier 202 determines that media content isbeing presented in the environment 100 of FIG. 1. The image sensor 204may be implemented as any suitable device such as, for example, aninfrared imager or a digital camera, such as a charge-coupled device(CCD) camera.

The frames obtained by the image sensor 204 of FIG. 2 are conveyed tothe people counter 206. In the illustrated example of FIG. 2, the peoplecounter 206 determines how many people appear in each of the receivedframes and records each of the amounts of people as a tally for eachframe. The manner in which the example people counter 206 performs itsoperations is described in detail below in connection with FIGS. 3-5.

The example people counter 206 of FIG. 2 outputs the calculated talliesalong with the corresponding frames to the time stamper 208. The timestamper 208 of the illustrated example includes a clock and a calendar.The example time stamper 208 associates a time and date with eachcalculated tally and the corresponding frame by, for example, appendingthe time/date data to the end of the tally data and/or the image data. Adata package (e.g., the tally, the date and time, and the frame) isstored in the memory 210. The memory 210 may include a volatile memory(e.g., Synchronous Dynamic Random Access Memory (SDRAM), Dynamic RandomAccess Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM, etc.)and/or a non-volatile memory (e.g., flash memory). The memory 210 mayalso include one or more mass storage devices such as, for example, harddrive disk(s), compact disk drive(s), digital versatile disk drive(s),etc.

The example content identifier 202 of FIG. 2 includes a program detector212 and an output device 214. The example program detector 212 of FIG. 2detects presentation(s) of media content in the media exposureenvironment 100 and collects identification information associated withthe detected presentation(s). For example, the program detector 212,which may be in wired and/or wireless communication with thepresentation device 102 and/or the STB 108 of FIG. 1, can identify apresentation time and a source of a presentation. The presentation timeand the source identification data may be utilized to identify theprogram by, for example, cross-referencing a program guide configured,for example, as a look up table. The source identification data may, forexample, be the identity of a channel obtained, for example, bymonitoring a tuner of the STB 108 or a digital selection (e.g., a remotecontrol signal) of a channel to be presented on the television 102.Additionally or alternatively, codes embedded with or otherwisebroadcast with media content being presented via the STB 108 and/or thetelevision 102 may be utilized by the program detector 212 to identifythe presentation. As used herein, a code is an identifier that istransmitted with the media content for the purpose of identifying thecorresponding media content. Codes may be carried in the audio, in thevideo, in the metadata, in the vertical blanking interval, or in anyother portion of the media content. Additionally or alternatively, theprogram detector 212 can collect a signature representative of a portionof the media content. As used herein, a signature is a representation ofsome characteristic of the media content (e.g., a frequency spectrum ofan audio signal). Collected signature(s) can be compared against acollection of signatures of known media content to identify thecorresponding media content. The signature(s) can be collected by theprogram detector 212 and/or the program detector 212 can collect samplesof the media content and export them to a remote site for generation ofthe signature(s). Irrespective of the manner in which the media contentof the presentation is identified, the identification information istime stamped by the time stamper 208 and stored in the memory 210.

In the illustrated example of FIG. 2, the output device 214 periodicallyand/or aperiodically exports the recorded data from the memory 214 to adata collection facility via a network (e.g., a local-area network, awide-area network, a metropolitan-area network, the Internet, a digitalsubscriber line (DSL) network, a cable network, a power line network, awireless communication network, a wireless mobile phone network, a Wi-Finetwork, etc.). The data collection facility utilizes the people datagenerated by the people counter 206 and the content identifying datacollected by the program detector 212 to generate exposure information.Alternatively, the data analysis could be performed locally and exportedvia a network or the like to a data collection facility for furtherprocessing. For example, the amount of people (as counted by the peoplecounter 206) in the exposure environment 100 at a time (as indicated bythe time stamp appended to the people tally by the time stamper 208) inwhich a sporting event (as identified by the program detector 212) waspresented by the television 102 can be used in a rating calculation forthe sporting event. In some examples, additional information (e.g.,demographic data, geographic data, etc.) is correlated with the exposureinformation at the data collection facility to expand the usefulness ofthe raw data collected by the example audience measurement device 104 ofFIGS. 1 and/or 2. The data collection facility of the illustratedexample compiles data from many exposure environments.

While an example manner of implementing the audience measurement device104 of FIG. 1 has been illustrated in FIG. 2, one or more of theelements, processes and/or devices illustrated in FIG. 2 may becombined, divided, re-arranged, omitted, eliminated and/or implementedin any other way. Further, the example audience detector 200, theexample content identifier 202, the example image sensor 204, theexample people counter 206, the example time stamper 208 and/or, moregenerally, the example audience measurement 104 of FIG. 2 may beimplemented by hardware, software, firmware and/or any combination ofhardware, software and/or firmware. Thus, for example, any of theexample audience detector 200, the example content identifier 202, theexample image sensor 204, the example people counter 206, the exampletime stamper 208 and/or, more generally, the example audiencemeasurement 104 of FIG. 2 could be implemented by one or morecircuit(s), programmable processor(s), application specific integratedcircuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)), etc. When any of the appendedsystem or apparatus claims are read to cover a purely software and/orfirmware implementation, at least one of the example audience detector200, the example content identifier 202, the example image sensor 204,the example people counter 206, the example time stamper 208 and/or,more generally, the example audience measurement device 104 of FIG. 2are hereby expressly defined to include a tangible computer readablemedium such as a memory, DVD, CD, etc. storing the software and/orfirmware. Further still, the example audience measurement device 104 ofFIG. 2 may include one or more elements, processes and/or devices inaddition to, or instead of, those illustrated in FIG. 2, and/or mayinclude more than one of any or all of the illustrated elements,processes and devices.

FIG. 3 is a block diagram of an example implementation of the examplepeople counter 206 of FIG. 2. The example people counter 206 of FIG. 3includes a face detector 300 that receives frames of image datacollected by the image sensor 204 of FIG. 2. With reference to FIG. 1,the example face detector 300 of FIG. 3 receives a frame of image dataincluding objects in the exposure environment 100 of FIG. 1 at a firsttime. The first time is reflected in a time stamp appended to the imagedata of the frame by the time stamper 208 of FIG. 2. The example facedetector 300 of FIG. 3 analyzes the objects of the frame to determinewhether one or more of the objects are faces. In the illustrated exampleof FIG. 3, the face detector 300 is unconcerned with an identity of aperson belonging to detected faces. However, in some examples, the facedetector 300 may attempt to identify the person by, for example,comparing image data corresponding to detected face to a collection ofimages known to belong to identifiable people (e.g., frequent visitorsand/or members of the household associated with the room 100 of FIG. 1).

When a first face is detected in a current frame, the example facedetector 300 of FIG. 3 generates a face box or frame (e.g., a square, anoval, a circle, etc.) around the face to demarcate a position in thecurrent frame at which the face is located. FIG. 4A shows an example ofa face box 400 generated by the example face detector 300 of FIG. 3. Theexample face box 400 of FIG. 4A can be centered on a point at a centerof the detected face. The example face detector 300 of FIG. 3 alsorecords a position 402 of the detected face. In the illustrated exampleof FIG. 4, the recorded position 402 is defined by an X-Y coordinate ata center of the face box 400 surrounding the face. The X-Y coordinatecorresponds to a two-dimensional grid overlaid on the first frame. Inreference to FIG. 1, when the faces of the audience members 106 areoriented towards the camera as shown in FIG. 4A, the example facedetector 300 of FIG. 3 detects three faces belonging to the threemembers of the audience 106 and records (e.g., in a cache associatedwith the face detector 300) the respective position (e.g., X-Ycoordinate) of each detected face. In some instances, the face detector300 is additionally or alternatively capable of detecting a tilted heador rotated head or a profile view of a head or face. For each detectedface, the face detector 300 passes a declaration indicating that aperson has been detected and the corresponding position to a facedetection declaration database 302. In the illustrated example of FIG.3, the face detection declarations are implemented by a storage device,such as a cache. That is, the example face detector 300 declares howmany faces and, thus, people were detected in the current frame andpasses the position (e.g., the X-Y coordinate 402 of FIG. 4A) of eachdeclaration to the face detection declaration database 302. Thus, theexample face declaration database 302 of FIG. 3 includes a number offace detections for a current frame and the corresponding positions ofthe face(s) in the current frame.

The example face detector 300 of FIG. 3 also conveys the position ofeach detected face to a body image capturer 304. The example body imagecapturer 304 of FIG. 3 uses the position of each detected face tocalculate one or more body regions, such as a shoulder region, a torsoregion, a leg region, etc. corresponding to each face. That is, the bodyimage capturer 304 estimates a portion of the current frame thatincludes the designated body region(s) belonging to each detected face.In the illustrated example of FIG. 3, the body image capturer 304creates a shoulder box or frame (e.g., a rectangle, an oval, etc.)adjacent to and/or overlapping with the face box created around thedetected face by the face detector 300. With reference to FIG. 4A, theexample body image capturer 304 of FIG. 3 creates a shoulder box 404partially overlapping with the face box 400 generated by the facedetector 300. In some examples, the shoulder box 404 and the face box400 are adjacent but do not overlap. The example body image capturer 304of FIG. 3 uses the position 402 of the face box 400 to estimate alocation of the shoulders. In particular, the example body imagecapturer 304 centers the shoulder box 404 at a point along the sameY-axis as the position 402 of the detected face (e.g., mutual alignmentwith the position 402) and in a negative Y-axis direction relative tothe face box 400. The example body image capturer 304 then extends theshoulder box 404 in a positive X-axis and in a negative X-axisdirection. The shoulder box 404 is scaled or sized in accordance with asize or scale of the detected face. After the shoulder box is created,the example body image capturer 304 of FIG. 3 records a position of theshoulder box. With reference to the illustrated example of FIG. 4A, theposition 406 is a center of the shoulder box 404. The example body imagecapturer 304 captures image data (e.g., pixels) within the shoulder box404 in the image frame. In other words, the example body image capturer304 of FIG. 3 takes a picture of a shoulder region of a person detectedvia the example face detector 300 and/or extracts image datacorresponding to the shoulder region from the image in which the facewas detected. In some examples, the image of the shoulder region iscaptured on a sub-sampled grid spacing to save storage space and toincrease processing speed. For example, the image may be sampled atthree hundred points spaced in a thirty by ten grid or dispersed evenlythroughout the region in accordance with any suitable spatial samplingscheme. The data generated by the body image capturer 304, including theimage data (e.g., pixels) of the shoulder region and the position 406 ofthe picture, is stored in a database 306. The example database 306 ofbody region images can be implemented by any suitable type of datastructure, memory, and/or data storage device. As described below,additional or alternative body region(s) can be captured by the bodyimage capturer 304 based on, for example, adjustable settings thatcontrol which body region(s) are to be used to count people inaccordance with the examples disclosed herein.

As noted above, a tilt or rotation of a head is not likely tosubstantially change the orientation and/or position of a body region,such as the shoulder region. The example people counter 206 of FIG. 3takes advantage of this likelihood to avoid missing a titled or rotatedhead when counting people by recognizing objects as faces. Inparticular, the example people counter 206 of FIG. 3 includes a bodyimage data comparator 308 to supplement the face detector 300 as a toolfor counting people in the exposure environment 100. The example bodyimage data comparator 308 of FIG. 3 compares image data of a currentframe to body region pictures of one or more previous or subsequentframes. If the body image data comparator 308 determines that the bodyregions captured in the previous or subsequent frame(s) are also presentin the current frame, a person is determined to be in the current frame(and, thus, counted) even when a corresponding face is not detected(e.g., because the face is unrecognizable by and/or obscured from thecamera 110). In some examples, the body image data comparator 308 istriggered by a face detected in a frame not being detected in subsequentor previous frame. In some examples, the body image data comparator 308operates regardless of whether faces of a frame are found in asubsequent or previous frame.

To obtain body region pictures of the previous frame(s), the examplepeople counter 206 of FIG. 3 includes a body image retriever 310. Theexample body image retriever 310 retrieves a number of previous framesto be compared to the current frame by the body image data comparator308. For example, to have the body image data comparator 308 compare thecurrent frame to body region images of the previous ten (10) frames(which may translate to the ten seconds prior to the current frame inthe exposure environment 100 of FIG. 1), the example body imageretriever 310 of FIG. 3 retrieves body region image(s) and thecorresponding position(s) for the previous ten (10) frames from the bodyregion images database 306 and conveys the same to the body image datacomparator 308 (e.g., as a group or sequentially). The example bodyimage retriever 310 can be adjusted such that a greater or lesser numberof previous frames are compared to the current frame.

The example body image data comparator 308 of FIG. 3 analyzes the imagedata of the current frame at each position received from the body imageretriever 310. In particular, the example body image data comparator 308of FIG. 3 compares the image data of the current frame corresponding tothe shoulder box 404 to the shoulder image(s) of the previous orsubsequent frame(s) at those position(s). With reference to FIGS. 4A and4B, when a current frame corresponding to FIG. 4B is to be compared to aprevious frame corresponding to FIG. 4A, the example body imageretriever 310 retrieves the shoulder image 404 at the position 406 ofFIG. 4A from the body image database 306 and conveys the same to thebody image data comparator 308. The example body image data comparator308 of FIG. 3 uses the received position 406 from FIG. 4A as a center ofa box 408 for comparing to the received shoulder image data. The box 408used by the example body image data comparator 308 is similarly shapedand sized as the shoulder box 404 formed by the example body imagecapturer 304 in connection with FIG. 4A. Therefore, if the receivedshoulder image data of the box 404 from the previous frame (e.g., FIG.4A) is substantially the same as (e.g., within a similarity threshold)the image data in the box 408 used by the body image data comparator308, the example people counter 206 determines that a person appears inthe current frame at the position 406 even though a face was notdetected. To determine whether the image data is substantially the same,the example comparator 308 of FIG. 3 utilizes a similarity thresholddefined by, for example, an amount of similar pixels in a similarposition within the boxes 404 and 408. Additionally or alternatively,the example comparator 308 of FIG. 3 may utilize any other suitablecomparison technique(s) such as, for example, a normalized correlationmethod, a Mahalanobis distance, etc. when comparing the pixels of theboxes 404 and 408. As shown in FIG. 4B, the face was not detected by theface detector 300 because the head is rotated to one side. However, theimage data of the shoulder boxes 404 and 408 are similar. Therefore, aperson belonging to the shoulders is assumed to appear in the currentframe in a similar position as the same person in the previous frame.Accordingly, the example people counter 206 counts the person associatedwith the shoulder even though a face was not detected and, thus, doesnot undercount a people tally when a person tilts or rotates his or herhead (as shown between FIGS. 4A and 4B) but remains in the exposureenvironment 100.

In addition or in lieu of the shoulder region described above, theexample body image capturer 304 of FIG. 3 may capture other bodyregion(s) relative to a detected face or head. FIG. 4C illustrates analternative body region that can be captured by the body image capturer304 and analyzed by the body image data comparator 308. Similar to theshoulder region described above in connection with FIGS. 4A and 4B, ahip region 410 can be captured by the body image capturer 304 based on aposition 412 of a detected head. In the illustrated example, the bodyimage capturer 304 is configured to use the hip region 410 (or any othersuitable body region alternative to the shoulder region described above)when the detected face corresponds to a tilted head detected by adetector configured to detect profiles of a head. In the example of FIG.4C, a position 413 of the hip region 410 and the orientation of the hipregion 410 is calculated using an angle 414 relative to a centerline ofextending from the tilted head and a distance 416 from the position 412of the head. The captured hip region 410 of FIG. 4C can be compared toother hip regions of the body image database 306 by the body image datacomparator 308 in a similar manner as the shoulder region describedabove. Any other suitable body region can be utilized by the examplepeople counter 206 of FIGS. 2 and/or 3.

The example body image data comparator 308 of FIG. 3 performs thecomparison described above for each body region box and positionreceived from the body image retriever 310. For each matching bodyregion between the current frame and the previous or subsequentframe(s), the example body image data comparator 308 forwards thecorresponding position (e.g., the position 406 of FIGS. 4A and 4B) and adeclaration that a person appears in the current frame at that positionto a body region detection declaration database 312. That is, theexample body image data comparator 308 declares how many body regionssimilar to previously detected body regions were detected in the currentframe and passes the position (e.g., the X-Y coordinate 406) of eachdeclaration to the body region detection declaration database 312. Thus,the example declaration database 312 of FIG. 3 includes a number of bodyregion detections for a current frame and the corresponding positions ofthe body regions in the current frame. In the illustrated example, thebody region detection declaration database 312 is implemented by astorage device, such as a cache.

In some examples, the database 312 can be used to generate a tally ofthe people in exposure environment 100 for a given frame. In suchinstances, the people counter 206 outputs the number of body regiondetections for a current frame as a people tally for that frame.However, in the illustrated example of FIG. 3, the people counter 206includes a redundancy checker 314 to avoid counting a single personappearing in a frame multiple times. Instead of using the body regiondeclarations as the people tally for a particular frame, the exampleredundancy checker 314 of FIG. 3 determines whether a person is countedin both the face detection declaration database 302 and the body regiondetection declaration database 312. The example redundancy checker 314of FIG. 3 compares a position of each of the body region declarations tothe positions of the face declarations for that same time frame. When aposition of a first body region declaration (e.g., the position 406 ofFIG. 4B) and a position of any of the face declarations (e.g., theposition 402 of FIG. 4A) indicate that the first body region declarationcorresponds to an already detected face, the example redundancy checker314 omits the first body region declaration from a people tally for thecurrent frame. Such an indication may be the position of the first bodyregion declaration being located on a substantially similar (e.g.,within a threshold of plus or minus five units) X-axis as the positionof a first face declaration and a certain amount of Y-units away fromthe position of the first face declaration. In such instances, theamount of Y-units used by the redundancy checker 314 corresponds to anumber of Y-units away from the center of the face box used by the bodyimage capturer 304 to generate, for example, the shoulder box 404 ofFIG. 4A.

After factoring in omission(s) from the redundancy check describedabove, the redundancy checker 314 sums the face declarations and thebody region declarations for the current frame and outputs the total asa people tally. As described above, the people tally is conveyed to thetime stamper 208 of FIG. 2 and, subsequently, to the memory 210 of FIG.2. Thus, the example people counter 206 of FIG. 3 provides the exampleaudience measurement device 104 of FIGS. 1 and/or 2 a more accurateamount of people in the exposure environment 100 at a given time. Peopletallies may be generated at any desired frequency (e.g., once persecond, once per five seconds, etc.).

While an example manner of implementing the people counter 206 of FIG. 2has been illustrated in FIG. 3, one or more of the elements, processesand/or devices illustrated in FIG. 3 may be combined, divided,re-arranged, omitted, eliminated and/or implemented in any other way.Further, the example face detector 300, the example face detectiondeclaration database 302, the example body image capturer 304, theexample body image database 306, the example body image comparator 308,the example body image retriever 310, the example body region detectiondeclaration database 312, the example redundancy checker 314, and/or,more generally, the example people counter 206 of FIG. 3 may beimplemented by hardware, software, firmware and/or any combination ofhardware, software and/or firmware. Thus, for example, any of, theexample face detector 300, the example face detection declarationdatabase 302, the example body image capturer 304, the example bodyimage database 306, the example body image comparator 308, the examplebody image retriever 310, the example body region detection declarationdatabase 312, the example redundancy checker 314, and/or, moregenerally, the example people counter 206 of FIG. 3 could be implementedby one or more circuit(s), programmable processor(s), applicationspecific integrated circuit(s) (ASIC(s)), programmable logic device(s)(PLD(s)) and/or field programmable logic device(s) (FPLD(s)), etc. Whenany of the appended apparatus or system claims are read to cover apurely software and/or firmware implementation, at least one of, theexample face detector 300, the example face detection declarationdatabase 302, the example body image capturer 304, the example bodyimage database 306, the example body image comparator 308, the examplebody image retriever 310, the example body region detection declarationdatabase 312, the example redundancy checker 314, and/or, moregenerally, the example people counter 206 of FIG. 3 are hereby expresslydefined to include a tangible computer readable medium such as a memory,DVD, CD, etc. storing the software and/or firmware. Further still, theexample people counter 206 of FIG. 3 may include one or more elements,processes and/or devices in addition to, or instead of, thoseillustrated in FIG. 3, and/or may include more than one of any or all ofthe illustrated elements, processes and devices.

FIGS. 5A-5C and 6 are flowcharts representative of example machinereadable instructions for implementing the example people counter 206 ofFIGS. 2 and/or 3. In this example, the machine readable instructionscomprise a program for execution by a processor such as the processor712 shown in the example processing system 700 discussed below inconnection with FIG. 7. The program may be embodied in software storedon a tangible computer readable medium such as a CD-ROM, a floppy disk,a hard drive, a digital versatile disk (DVD), or a memory associatedwith the processor 712, but the entire program and/or parts thereofcould alternatively be executed by a device other than the processor 712and/or embodied in firmware or dedicated hardware. Further, although theexample program is described with reference to the flowchartsillustrated in FIGS. 5A-5C and 6, many other methods of implementing theexample people counter 206 may alternatively be used. For example, theorder of execution of the blocks may be changed, and/or some of theblocks described may be changed, eliminated, or combined.

As mentioned above, the example processes of FIGS. 5A-5C and/or 6 may beimplemented using coded instructions (e.g., computer readableinstructions) stored on a tangible computer readable medium such as ahard disk drive, a flash memory, a read-only memory (ROM), a compactdisk (CD), a digital versatile disk (DVD), a cache, a random-accessmemory (RAM) and/or any other storage media in which information isstored for any duration (e.g., for extended time periods, permanently,brief instances, for temporarily buffering, and/or for caching of theinformation). As used herein, the term tangible computer readable mediumis expressly defined to include any type of computer readable storageand to exclude propagating signals. Additionally or alternatively, theexample processes of FIGS. 5A-5C and/or 6 may be implemented using codedinstructions (e.g., computer readable instructions) stored on anon-transitory computer readable medium such as a hard disk drive, aflash memory, a read-only memory, a compact disk, a digital versatiledisk, a cache, a random-access memory and/or any other storage media inwhich information is stored for any duration (e.g., for extended timeperiods, permanently, brief instances, for temporarily buffering, and/orfor caching of the information). As used herein, the term non-transitorycomputer readable medium is expressly defined to include any type ofcomputer readable medium and to exclude propagating signals.

FIG. 5A begins with the example people counter 206 of FIG. 3 receiving aframe of image data (block 500). In the illustrated example, thereceived frame is captured by the camera 110 of the audience measurementdevice 104 monitoring the exposure environment 100. The example peoplecounter 206 searches the received frame for faces to attempt to countthe members of the audience 106 (block 502). An example implementationof block 502 is shown in FIG. 5B. As an initial count of the people inthe frame, the example face detector 300 of FIG. 3 analyzes objects ofthe received frame to determine whether any of the object(s) is a humanface (block 504). For any detected faces, the example face detector 300declares that a person is present at a position (e.g., an X-Ycoordinate) recorded by the face detector 300 (block 506). Thus, eachdeclaration of a presence of a person by the face detector 300 resultsin an entry in the face detection declaration database 302 of FIG. 3.Such entries also include the position of the detected face asdetermined by the face detector 300. The example face detector 300 alsoconveys the position of each detected face in the received frame to theexample body image capturer 304 (block 507). Control then returns toFIG. 5A (block 508).

The example body image capturer 304 uses the position(s) of the detectedface(s) to capture image data in a body region for each detected face(block 510). The body region to be captured in the illustrated exampleof FIGS. 5A-5C and 6 is a shoulder region for clarity. However, anysuitable body region can be utilized by the examples of FIGS. 5A-5Cand/or 6. To capture a first shoulder image for a first detected face,the body image capturer 304 of the illustrated example identifies a boxor area (e.g., a square) adjacent to the position of the first detectedface likely to include the shoulders belonging to the first detectedface. A center of the area is set by traversing along a Y-axis in anegative direction away from the X-Y coordinate of the received positionof the corresponding detected face (e.g., a center of the box definingthe object detected as a face). The area then extends in a positive anda negative direction along an X-axis away from the calculated center ofthe area. An example area identified by the body image capturer 304 isshown in FIG. 4A as box 404. Image data (e.g., pixel information) of theshoulder area is captured by the body image capturer 304 and stored,along with the corresponding position data (e.g., the center) in thebody images database 306 (block 512).

The example people counter 206 of FIG. 3 then searches the receivedframe for people using the body image data stored in the database base306 (block 514). An example implementation of block 514 is shown in FIG.5C. The example body image retriever 310 retrieves shoulder image datafor one or more previous frame(s) of the media exposure environment 100captured by the camera 110 (block 516). For example, the body imageretriever 310 of the illustrated example retrieves shoulder image datafor the last ten (10) frames captured by the camera 110 (e.g., the lastten (10) seconds). In the illustrated example, a position for each ofthe retrieved shoulder images accompanies the image data retrieved bythe body image retriever 310. The body image retriever 310 conveys(e.g., as a batch or one by one) the retrieved data, including theposition(s) of the shoulder image(s) of the previous frame(s), to thebody image data comparator 308. In the example of FIG. 5C, the bodyimage data comparator 308 compares image data of the current frame atthe position(s) of the received shoulder image(s) to the receivedshoulder image(s) from the previous frame(s) (block 518). If the imagedata of the current frame at the received position(s) matches at least athreshold number of the shoulder image data of the previous frame(s)(e.g., any of the ten frames) within a threshold (block 520), theexample body image data comparator 308 declares that a person appears inthe current frame at the respective position (block 522). In theillustrated example, the declaration(s) of the body image datacomparator 308 are stored in the body region detection declarationdatabase 312. Control then returns to FIG. 5A (block 524).

The example redundancy checker 314 of FIG. 3 compares a position of eachof the shoulder declarations to the positions of the face declarationfor a corresponding time frame (block 526). When a position of one ofthe shoulder declarations and a position of one of the face declarationsindicate that the shoulder declaration corresponds to an alreadydetected face, the example redundancy checker 314 omits that shoulderdeclaration from a people tally for the current frame. After identifyingredundancies between the face declarations and the shoulderdeclarations, the example redundancy checker 314 sums the non-redundantface and shoulder declarations corresponding to people appearing in thecurrent frame and outputs a tally representing the sum total of peoplein the audience of the exposure environment 100 of FIG. 1 (block 528).The example instructions represented by the flowchart of FIG. 5A thenend or return to block 502 to process another frame (block 530).

FIG. 6 is a flowchart illustrating another example implementation of thepeople counter 206 in addition to the example implementation illustratedin FIGS. 5A-5C. In the illustrated example of FIG. 6, the shoulderdetection declarations are used as a people tally without checking forredundancies between the face detection declarations and the shoulderdetection declarations described above. Such an approach may, forexample, conserve processing resources and/or time in comparison withthe example implementation described in FIGS. 5A-5C. FIG. 6 begins withthe example people counter 206 of FIG. 3 receiving a frame of image data(block 600). In the illustrated example, the received frame is capturedby the camera 110 of the audience measurement device 104 monitoring theexposure environment 100. The example people counter 206 analyzes thecurrent frame to detect human faces (block 602). For any detected faces,the example face detector 300 detects the position of the detected faceand conveys the position of each detected face in the current frame tothe example body image capturer 304 (block 604).

The example body image capturer 304 uses the position(s) of the detectedface(s) to capture image data in a shoulder region for each detectedface (block 606). For example, to capture a first shoulder image for afirst detected face, the body image capturer 304 of the illustratedexample identifies a box or area (e.g., a square) adjacent to theposition of the first detected face likely to include the shouldersbelonging to the first detected face. Image data (e.g., pixelinformation) of the shoulder area is captured by the body image capturer304 and stored, along with the corresponding position data (e.g., thecenter) in the body images database 306 (block 608).

In the illustrated example of FIG. 6, the example body image retriever310 retrieves shoulder image data for one or more previous frame(s) ofthe media exposure environment 100 captured by the camera 110 (block610). For example, the body image retriever 310 of the illustratedexample retrieves shoulder image data for the last ten (10) framescaptured by the camera 110 (e.g., the last ten (10) seconds). In theillustrated example of FIG. 6, a position for each of the retrievedshoulder images accompanies the image data retrieved by the body imageretriever 310. The body image retriever 310 conveys (e.g., as a batch orone by one) the retrieved data, including the position(s) of theshoulder image(s) of the previous frame(s), to the body image datacomparator 308. In the example of FIG. 5C, the body image datacomparator 308 compares image data of the current frame at theposition(s) of the received shoulder image(s) to the received shoulderimage(s) from the previous frame(s) (block 612). If the image data ofthe current frame at the received position(s) matches at least athreshold number of the shoulder image data of the previous frame(s)(e.g., any of the ten frames) within a threshold, the example body imagedata comparator 308 declares that a person appears in the current frameat the respective position (block 614). In the illustrated example, thedeclaration(s) of the body image data comparator 308 are stored in thebody region detection declaration database 312. Further, thedeclaration(s) of the body image data comparator 308 are output as apeople tally for the current frame (block 616). Thus, using theillustrated example of FIG. 6, the number of matching shoulder regionsbetween a current frame and a previous frame is output by the peoplecounter 206 as a people tally. The example of FIG. 6 then ends (block618).

While the example people counter 206 of FIGS. 2 and/or 3 is described inthe context of an audience measurement device 104 and the generation ofexposure data for media content, the example methods, articles ofmanufacture, and apparatus disclosed herein can be applied to additionalor alternative contexts, systems, measurements, applications, programs,etc. That is, the example methods, articles of manufacture, andapparatus disclosed herein can be used in any application to determinehow many people are located in a space or location.

FIG. 7 is a block diagram of an example processor system 710 that may beused to execute the machine readable instructions of FIGS. 5A-5C toimplement the example people counter 206 of FIGS. 2 and/or 3.

The example processor system 710 of FIG. 7 includes a processor 712 thatis coupled to an interconnection bus 714. The processor 712 may be anysuitable processor, processing unit, or microprocessor (e.g., one ormore Intel® microprocessors from the Pentium® family, the Itanium®family or the XScale® family and/or other processors from otherfamilies). The system 710 may be a multi-processor system and, thus, mayinclude one or more additional processors that are identical or similarto the processor 712 and that are communicatively coupled to theinterconnection bus 714.

The processor 712 of FIG. 7 is coupled to a chipset 718, which includesa memory controller 720 and an input/output (I/O) controller 722. Achipset provides I/O and memory management functions as well as aplurality of general purpose and/or special purpose registers, timers,etc. that are accessible or used by one or more processors coupled tothe chipset 718. The memory controller 720 performs functions thatenable the processor 712 to access a system memory 724, a mass storagememory 725, and/or a digital versatile disk (DVD) 740.

In general, the system memory 724 may include any desired type ofvolatile and/or non-volatile memory such as, for example, static randomaccess memory (SRAM), dynamic random access memory (DRAM), flash memory,read-only memory (ROM), etc. The mass storage memory 725 may include anydesired type of mass storage device including hard disk drives, opticaldrives, tape storage devices, etc. The machine readable instructions ofFIGS. 5A-5C may be stored in the system memory 724, the mass storagememory 725, and/or the DVD 740.

The I/O controller 722 performs functions that enable the processor 712to communicate with peripheral input/output (I/O) devices 726 and 728and a network interface 730 via an I/O bus 732. The I/O devices 726 and728 may be any desired type of I/O device such as, for example, akeyboard, a video display or monitor, a mouse, etc. The networkinterface 730 may be, for example, an Ethernet device, an asynchronoustransfer mode (ATM) device, an 802.11 device, a digital subscriber line(DSL) modem, a cable modem, a cellular modem, etc. that enables theprocessor system 710 to communicate with another processor system. Theexample network interface 730 of FIG. 7 is also communicatively coupledto a network 734, such as an intranet, a Local Area Network, a Wide AreaNetwork, the Internet, etc.

While the memory controller 720 and the I/O controller 722 are depictedin FIG. 7 as separate functional blocks within the chipset 718, thefunctions performed by these blocks may be integrated within a singlesemiconductor circuit or may be implemented using two or more separateintegrated circuits.

Although certain example apparatus, methods, and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all apparatus,methods, and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. A method to count people, comprising:determining, by executing an instruction with a processor, anorientation of a head detected in a first frame, the first framecorresponding to a first time, the first time occurring after a secondtime corresponding to a second frame; selecting, by executing aninstruction with the processor, a body region based on the orientationof the detected head; obtaining, with the processor, first image data ofthe first frame at a location in the first frame corresponding to theselected body region; comparing, with the processor, the first imagedata of the first frame to second image data of the second framecorresponding to the location via an image data comparison operation;and incrementing, with the processor, a first count of persons when thefirst image data corresponds to the second image data.
 2. The method asdefined in claim 1, wherein the selecting of the body region based onthe orientation of the detected head includes: selecting a shoulderregion when the detected head is not tilted; and selecting a hip regionwhen the detected head is tilted.
 3. The method as defined in claim 1,further including storing the first image data in association with thelocation.
 4. The method as defined in claim 1, further includingcounting a number of faces in the first frame to form a second count. 5.The method as defined in claim 4, further including determining if abody region counted in the first frame corresponds to a face counted inthe second count; and reducing the first count if the body regioncorresponds to the face counted in the second count.
 6. The method asdefined in claim 5, further including summing the first count and thesecond count to obtain a tally of people in the first frame.
 7. Themethod as defined in claim 6, further including associating the tallywith media.
 8. An apparatus to count people, comprising: a face detectorto detect faces in a first frame, and to increment a face tallyassociated with the first frame based on a number of faces detected inthe first frame; a profile detector to detect an orientation of a headcorresponding to a face detected in the first frame; a body imagecapturer to: obtain first image data of a first body region in the firstframe when the orientation of the head is a first orientation; andobtain second image data of a second body region in the first frame whenthe orientation of the head is a second orientation different than thefirst orientation; and a comparator to compare (1) the first image dataof the first frame or the second image data of the first frame to (2)third image data of a second frame captured prior to capture of thefirst frame via an image data comparison operation, the comparator toincrement a body count associated with the first frame when (a) thefirst image data or the second image data matches (b) the third imagedata.
 9. The apparatus as defined in claim 8, wherein the firstorientation includes a non-tilted head, the first body region includes ashoulder region, the second orientation includes a tilted head, and thesecond body region includes a hip region.
 10. The apparatus as definedin claim 8, further including a redundancy checker to check forredundancy between the body count associated with the first frame andthe face tally associated with the first frame.
 11. The apparatus asdefined in claim 10, wherein the redundancy checker is to decrement thebody count when the redundancy checker detects the redundancy.
 12. Theapparatus as defined in any of claim 11, wherein the redundancy checkeris to sum the face tally and the body count to form a people tally. 13.The apparatus as defined in claim 12, further including a contentidentifier to associate the people tally with media identifyinginformation corresponding to media associated with the first frame. 14.A tangible computer readable medium comprising instructions that, whenexecuted, cause a machine to at least: determine an orientation of ahead corresponding to a first face detected in a first frame in a seriesof image frames captured by an imaging device, the first framecorresponding to a first time; select a body region to capture based onthe orientation of the head; access first image data of the selectedbody region in the first frame, the selected body region being at afirst position within the first frame; determine whether a second frameof the series of image frames includes the first image data at the firstposition via an image data comparison operation, the second framecorresponding to a second time prior to the first time; and increment apeople tally when the second frame includes the first image data at theposition.
 15. The tangible computer readable medium as defined in claim14, wherein the instructions, when executed, cause the machine to selectthe body region based on the orientation of the detected head by:selecting a shoulder region when the detected head is not tilted; andselecting a hip region when the detected head is tilted.
 16. Thetangible computer readable medium as defined in claim 14, wherein theinstructions, when executed, cause the machine to generate a box for theselected body region based on a reference point of the detected firstface.
 17. The tangible computer readable medium as defined in any ofclaim 14, wherein the instructions, when executed, cause the machine todetermine that the second frame includes the first image data at thefirst position when the second frame includes second image data similarwithin a threshold to the first image data at the first position. 18.The tangible computer readable medium as defined in claim 14, whereinthe instructions, when executed, cause the machine to store the firstimage data in association with the first position.
 19. The tangiblecomputer readable medium as defined in claim 14, wherein theinstruction, when executed, cause the machine to count a number of facesin the first frame to form a count.
 20. The tangible computer readablemedium as defined in claim 19, wherein the instructions, when executed,cause the machine to determine if a body region counted in the firstframe corresponds to a face counted in the count; and reducing thepeople tally if the body region corresponds to the face counted in thecount.